package edu.gtcfla.km.appmodules.service;

import java.util.Collection;

import org.springframework.data.domain.Page;
import org.vsg.biz.BusinessOperationException;
import org.vsg.search.api.criterion.PaginationCriteria;

import edu.gtcfla.km.appmodules.vo.UserGroupFormVO;
import edu.gtcfla.km.appmodules.vo.UserGroupListVO;
import edu.gtcfla.km.appmodules.vo.UserGroupMemberFormVO;

public interface UserGroupService {

	
	void addUserGroup(UserGroupFormVO formVO) throws BusinessOperationException;
	
	void updateUserGroup(UserGroupFormVO formVO) throws BusinessOperationException;	
	
	UserGroupFormVO loadUserGroup(String pk) throws BusinessOperationException;
	
	void deleteUserGroupIds(String[] ids) throws BusinessOperationException;	
	
	public Page<UserGroupListVO> pageAvailableAllList(PaginationCriteria criteria) throws BusinessOperationException, org.vsg.search.api.page.PaginationException;
	
	void assignMember(Collection<String> userIds , String userGroupId) throws BusinessOperationException;
	
	UserGroupMemberFormVO getAssignedMembersByGroupId(String userGroupId) throws BusinessOperationException;
	
}
